| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer(kind=int32), | public, | parameter | :: | LA_HERMITIAN_TRANSPOSE | = | 2 |
Defines a Hermitian transpose operation for a complex-valued matrix. |
| integer(kind=int32), | public, | parameter | :: | LA_NO_OPERATION | = | 0 |
Defines no operation should be performed on the matrix. |
| integer(kind=int32), | public, | parameter | :: | LA_TRANSPOSE | = | 1 |
Defines a transpose operation. |
An interface to the banded diagonal matrix multiplication routines.
Performs the matrix operation or where is a banded matrix and is a diagonal matrix.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | left |
A logical flag indicating whether to perform the operation (TRUE) or (FALSE). |
||
| integer(kind=int32), | intent(in) | :: | m |
The number of rows in the banded matrix . |
||
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals in the banded matrix. |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals in the banded matrix. |
||
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply by. |
||
| real(kind=real64), | intent(inout), | dimension(:,:) | :: | a |
The banded matrix to multiply. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | b |
The diagonal matrix to multiply by. |
Performs the matrix operation or where is a banded matrix and is a diagonal matrix.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | left |
A logical flag indicating whether to perform the operation (TRUE) or (FALSE). |
||
| integer(kind=int32), | intent(in) | :: | m |
The number of rows in the banded matrix . |
||
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals in the banded matrix. |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals in the banded matrix. |
||
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply by. |
||
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | a |
The banded matrix to multiply. |
|
| complex(kind=real64), | intent(in), | dimension(:) | :: | b |
The diagonal matrix to multiply by. |
An interface to the banded matrix multiplication routines.
Performs the matrix operation or where is a banded matrix.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | trans |
A logical flag indicating whether to perform the operation (FALSE) or (TRUE). |
||
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals in the banded matrix . |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals in the banded matrix . |
||
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply by. |
||
| real(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The banded matrix to multiply by. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | x |
The vector to multiply by. |
|
| real(kind=real64), | intent(in) | :: | beta |
The scalar to multiply by. |
||
| real(kind=real64), | intent(inout), | dimension(:) | :: | y |
On input, the vector to multiply. On output, the result of the operation. |
Performs the matrix operation where is a banded matrix.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | trans |
An integer flag indicating the operation to perform on matrix . Possible options are:
|
||
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals in the banded matrix . |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals in the banded matrix . |
||
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply by. |
||
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The banded matrix to multiply by. |
|
| complex(kind=real64), | intent(in), | dimension(:) | :: | x |
The vector to multiply by. |
|
| complex(kind=real64), | intent(in) | :: | beta |
The scalar to multiply by. |
||
| complex(kind=real64), | intent(inout), | dimension(:) | :: | y |
On input, the vector to multiply. On output, the result of the operation. |
An interface to the banded matrix to full matrix conversion routines.
Converts a banded matrix to a full matrix.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals in the banded matrix. |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals in the banded matrix. |
||
| real(kind=real64), | intent(in), | dimension(:,:) | :: | b |
The banded matrix to convert. |
|
| real(kind=real64), | intent(out), | dimension(:,:) | :: | f |
The full matrix to store the result in. |
Converts a banded matrix to a full matrix.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals in the banded matrix. |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals in the banded matrix. |
||
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | b |
The banded matrix to convert. |
|
| complex(kind=real64), | intent(out), | dimension(:,:) | :: | f |
The full matrix to store the result in. |
An interface to the banded to dense matrix conversion routines.
Converts a banded matrix to a dense matrix.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | m |
The number of rows in the M-by-N dense matrix. |
||
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals. Must be at least 0. |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals. Must be at least 0. |
||
| real(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The (KL+KU+1)-by-N banded matrix. |
The M-by-N dense matrix.
Converts a banded matrix to a dense matrix.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | m |
The M-by-N dense matrix. |
||
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals. Must be at least 0. |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals. Must be at least 0. |
||
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The (KL+KU+1)-by-N banded matrix. |
The M-by-N dense matrix.
An interface to the dense to banded matrix conversion routines.
Converts a banded matrix stored in dense format to a compressed form.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The matrix to convert. |
|
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals. Must be at least 0. |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals. Must be at least 0. |
The (KL+KU+1)-by-N banded matrix.
Converts a banded matrix stored in dense format to a compressed form.
The banded matrix is stored in a compressed form supplied column by column. The following code segment transfers between a full matrix to the bonded matrix storage scheme. \code{fortran} do j = 1, n k = ku + 1 - j do i = max(1, j - ku), min(n, j + kl) a(k + i, j) = matrix(i, j) end do end do \endcode
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The matrix to convert. |
|
| integer(kind=int32), | intent(in) | :: | kl |
The number of subdiagonals. Must be at least 0. |
||
| integer(kind=int32), | intent(in) | :: | ku |
The number of superdiagonals. Must be at least 0. |
The (KL+KU+1)-by-N banded matrix.
An interface to the determinant routines.
Computes the determinant of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The N-by-N matrix on which to operate. |
The determinant of the matrix.
Computes the determinant of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The matrix on which to operate. |
The determinant of the matrix.
An interface to the diagonal matrix multiplication routines.
Performs the matrix operation or where is a diagonal matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | lside |
A logical flag indicating if the diagonal matrix is on the left. |
||
| logical, | intent(in) | :: | trans |
A logical flag indicating if the matrix should be transposed. |
||
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | a |
The diagonal matrix in the operation. |
|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | b |
The matrix in the operation. |
|
| real(kind=real64), | intent(in) | :: | beta |
The scalar to multiply the matrix . |
||
| real(kind=real64), | intent(inout), | dimension(:,:) | :: | c |
The matrix in the operation. |
Performs the matrix operation or where is a diagonal matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | lside |
A logical flag indicating if the diagonal matrix is on the left. |
||
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | a |
The diagonal matrix in the operation. |
|
| real(kind=real64), | intent(inout), | dimension(:,:) | :: | b |
The matrix in the operation. |
Performs the matrix operation or where is a diagonal matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | lside |
A logical flag indicating if the diagonal matrix is on the left. |
||
| logical, | intent(in) | :: | trans |
A logical flag indicating if the matrix should be transposed. |
||
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| complex(kind=real64), | intent(in), | dimension(:) | :: | a |
The diagonal matrix in the operation. |
|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | b |
The matrix in the operation. |
|
| real(kind=real64), | intent(in) | :: | beta |
The scalar to multiply the matrix . |
||
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | c |
The matrix in the operation. |
Performs the matrix operation or where is a diagonal matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | lside |
A logical flag indicating if the diagonal matrix is on the left. |
||
| integer(kind=int32), | intent(in) | :: | opb |
An integer flag indicating the operation to perform on matrix . Possible options are:
|
||
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| complex(kind=real64), | intent(in), | dimension(:) | :: | a |
The diagonal matrix in the operation. |
|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | b |
The matrix in the operation. |
|
| real(kind=real64), | intent(in) | :: | beta |
The scalar to multiply the matrix . |
||
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | c |
The matrix in the operation. |
Performs the matrix operation or where is a diagonal matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | lside |
A logical flag indicating if the diagonal matrix is on the left. |
||
| integer(kind=int32), | intent(in) | :: | opb |
An integer flag indicating the operation to perform on matrix . Possible options are:
|
||
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| complex(kind=real64), | intent(in), | dimension(:) | :: | a |
The diagonal matrix in the operation. |
|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | b |
The matrix in the operation. |
|
| complex(kind=real64), | intent(in) | :: | beta |
The scalar to multiply the matrix . |
||
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | c |
The matrix in the operation. |
Performs the matrix operation or where is a diagonal matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | lside |
A logical flag indicating if the diagonal matrix is on the left. |
||
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| complex(kind=real64), | intent(in), | dimension(:) | :: | a |
The diagonal matrix in the operation. |
|
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | b |
The matrix in the operation. |
Performs the matrix operation or where is a diagonal matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | lside |
A logical flag indicating if the diagonal matrix is on the left. |
||
| integer(kind=int32), | intent(in) | :: | opb |
An integer flag indicating the operation to perform on matrix . Possible options are:
|
||
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | a |
The diagonal matrix in the operation. |
|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | b |
The matrix in the operation. |
|
| complex(kind=real64), | intent(in) | :: | beta |
The scalar to multiply the matrix . |
||
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | c |
The matrix in the operation. |
Performs the matrix operation or where is a diagonal matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | lside |
A logical flag indicating if the diagonal matrix is on the left. |
||
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | a |
The diagonal matrix in the operation. |
|
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | b |
The matrix in the operation. |
Performs the matrix operation or where is a diagonal matrix and is a sparse matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | lside | |||
| real(kind=real64), | intent(in) | :: | alpha | |||
| real(kind=real64), | intent(in), | dimension(:) | :: | a | ||
| class(csr_matrix), | intent(inout) | :: | b |
An interface to the diagonal extraction routines.
Extracts the diagonal of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The M-by-N matrix. |
The MIN(M, N) element array for the diagonal elements.
Extracts the diagonal of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The M-by-N matrix. |
The MIN(M, N) element array for the diagonal elements.
Extracts the diagonal of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(csr_matrix), | intent(in) | :: | a |
The M-by-N matrix. |
The MIN(M, N) element array for the diagonal elements.
An interface to the lower triangular matrix extraction routines.
Extracts the lower triangular portion of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | x |
The M-by-N matrix. |
The M-by-K lower triangular matrix where K = MIN(M, N).
Extracts the lower triangular portion of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | x |
The M-by-N matrix. |
The M-by-K lower triangular matrix where K = MIN(M, N).
An interface to the upper triangular matrix extraction routines.
Extracts the upper triangular portion of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | x |
The M-by-N matrix. |
The K-by-N upper triangular matrix where K = MIN(M, N).
Extracts the upper triangular portion of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | x |
The M-by-N matrix. |
The K-by-N upper triangular matrix where K = MIN(M, N).
An interface to the matrix multiplication routines.
Performs the matrix operation .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | transa |
A logical flag indicating if the matrix should be transposed. |
||
| logical, | intent(in) | :: | transb |
A logical flag indicating if the matrix should be transposed. |
||
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| real(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The matrix in the operation. |
|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | b |
The matrix in the operation. |
|
| real(kind=real64), | intent(in) | :: | beta |
The scalar to multiply the matrix . |
||
| real(kind=real64), | intent(inout), | dimension(:,:) | :: | c |
The matrix in the operation. |
Performs the matrix-vector operation .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | trans |
A logical flag indicating if the matrix should be transposed. |
||
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| real(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The matrix in the operation. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | b |
The vector in the operation. |
|
| real(kind=real64), | intent(in) | :: | beta |
The scalar to multiply the vector . |
||
| real(kind=real64), | intent(inout), | dimension(:) | :: | c |
The vector in the operation. |
Performs the matrix operation .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | opa |
An integer flag indicating the operation to perform on matrix . Possible options are:
|
||
| integer(kind=int32), | intent(in) | :: | opb |
An integer flag indicating the operation to perform on matrix . Possible options are:
|
||
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The matrix in the operation. |
|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | b |
The matrix in the operation. |
|
| complex(kind=real64), | intent(in) | :: | beta |
The scalar to multiply the matrix . |
||
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | c |
The matrix in the operation. |
Performs the matrix-vector operation .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | opa |
An integer flag indicating the operation to perform on matrix . Possible options are:
|
||
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the product of and . |
||
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The matrix in the operation. |
|
| complex(kind=real64), | intent(in), | dimension(:) | :: | b |
The vector in the operation. |
|
| complex(kind=real64), | intent(in) | :: | beta |
The scalar to multiply the vector . |
||
| complex(kind=real64), | intent(inout), | dimension(:) | :: | c |
The vector in the operation. |
An interface to the matrix rank routines.
Computes the rank of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The matrix. |
|
| real(kind=real64), | intent(in), | optional | :: | tol |
An optional input, that if supplied, overrides the default tolerance on singular values such that singular values less than this tolerance are treated as zero. The default tolerance is: MAX(M, N) * EPS * MAX(S). If the supplied value is less than the smallest value that causes an overflow if inverted, the tolerance reverts back to its default value, and the operation continues; however, a warning message is issued. |
The rank of the matrix.
Computes the rank of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The matrix. |
|
| real(kind=real64), | intent(in), | optional | :: | tol |
An optional input, that if supplied, overrides the default tolerance on singular values such that singular values less than this tolerance are treated as zero. The default tolerance is: MAX(M, N) * EPS * MAX(S). If the supplied value is less than the smallest value that causes an overflow if inverted, the tolerance reverts back to its default value, and the operation continues; however, a warning message is issued. |
The rank of the matrix.
An interface to the rank-1 update routines.
Performs a rank-1 update of a matrix of the form .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the outer product of and . |
||
| real(kind=real64), | intent(in), | dimension(:) | :: | x |
The vector in the outer product. |
|
| real(kind=real64), | intent(in), | dimension(:) | :: | y |
The vector in the outer product. |
|
| real(kind=real64), | intent(inout), | dimension(:,:) | :: | a |
The matrix to update. |
Performs a rank-1 update of a matrix of the form .
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply the outer product of and . |
||
| complex(kind=real64), | intent(in), | dimension(:) | :: | x |
The vector in the outer product. |
|
| complex(kind=real64), | intent(in), | dimension(:) | :: | y |
The vector in the outer product. |
|
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | a |
The matrix to update. |
An interface to the reciprocal multiplication routines.
Computes the product of a scalar and a vector, where the scalar is the reciprocal of the scalar A.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in) | :: | a |
The scalar A, which is the reciprocal of the scalar to multiply by. |
||
| real(kind=real64), | intent(inout), | dimension(:) | :: | x |
On input, the vector to multiply. On output, the product of the vector and the scalar reciprocal. |
An interface to the swap routines.
Swaps the contents of two arrays.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(inout), | dimension(:) | :: | x |
On input, the first array to swap. On output, the contents of the first array are copied to the second array. |
|
| real(kind=real64), | intent(inout), | dimension(:) | :: | y |
On input, the second array to swap. On output, the contents of the second array are copied to the first array. |
Swaps the contents of two arrays.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(inout), | dimension(:) | :: | x |
On input, the first array to swap. On output, the contents of the first array are copied to the second array. |
|
| complex(kind=real64), | intent(inout), | dimension(:) | :: | y |
On input, the second array to swap. On output, the contents of the second array are copied to the first array. |
An interface to the trace routines.
Computes the trace of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| real(kind=real64), | intent(in), | dimension(:,:) | :: | x |
The matrix. |
The trace of the matrix.
Computes the trace of a matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | x |
The matrix. |
The trace of the matrix.
An interface to the triangular matrix multiplication routines.
Performs the matrix operation or where is a triangular matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | upper |
A logical flag indicating whether the matrix A is upper triangular (TRUE) or lower triangular (FALSE). |
||
| real(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply by. |
||
| real(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The triangular matrix to multiply by. |
|
| real(kind=real64), | intent(in) | :: | beta |
The scalar to multiply by. |
||
| real(kind=real64), | intent(inout), | dimension(:,:) | :: | b |
On input, the matrix to multiply. On output, the result of the operation. |
Performs the matrix operation or where is a triangular matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| logical, | intent(in) | :: | upper |
A logical flag indicating whether the matrix A is upper triangular (TRUE) or lower triangular (FALSE). |
||
| complex(kind=real64), | intent(in) | :: | alpha |
The scalar to multiply by. |
||
| complex(kind=real64), | intent(in), | dimension(:,:) | :: | a |
The triangular matrix to multiply by. |
|
| complex(kind=real64), | intent(in) | :: | beta |
The scalar to multiply by. |
||
| complex(kind=real64), | intent(inout), | dimension(:,:) | :: | b |
On input, the matrix to multiply. On output, the result of the operation. |
Constructs an N-by-N identity matrix.
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| integer(kind=int32), | intent(in) | :: | n |
The size of the matrix. |
The resulting matrix.